iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0

昨天我們學完了函式的基礎用法以及講解,今天要寫的是進階用法。

會這樣分兩天是因為我覺得有一點難,可以給大家消化一下。

講解昨天未講到的

func ac (x: Int) 是定義函式的寫法;func 函式名稱(參數名稱: 參數型別)

這邊很容易搞混,連我自己都搞混了........這邊要特別注意!

套娃

var ainput = 3

func ac(x: Int) -> Int{
    var k = x * 2
    if k < 10{
        k = ac(x: k)
        return k
    }else{
        return k
    }
}

let a = ac(x: ainput)
print("Answer is",a)

先let a = ac(x: ainput) 所以就會去call ac函式,接著因為乘2 k然然未達10,所以回去再call一次ac。

呼叫另一個函式

var ainput = 3

func ac(x: Int) -> Int{
    var k = x * 2
    if k < 10{
        k = ac2(x: k)
        return k
    }else{
        return k
    }
}
func ac2(x: Int) -> Int{
    let k = x * 2
    return k
}

let a = ac(x: ainput)
print("Answer is",a)

這邊一樣先call ac 但沒超過10 所以回去call ac2 接著會回傳值回傳ac ,接著return回let a 那一行,就結束了。

沒有回傳值

var ainput = 3

func ac(x: Int) {
    var k = x * 2
    if k < 10{
        print("<10")
    }else{
        print(">10")
    }
}

let a = ac(x: ainput)

這邊你可以直接看let那一行,這時傳入什麼值也不重要,因為也沒有回傳值,但這邊你可以看到就是一個呼叫function的動作,判斷是否大於10。

預設參數值

swift 中的func是可以設定為預設參數值的,也就是說你就不需要有輸入值了,每次呼叫函式都會有固定的輸入值。

func ac(x: Int = 1) {
    print(x)
}

ac()

這樣子就會印出a了

多參數輸入

我們有時候輸入參數值時,並非每次都輸入一個值,偶爾也會輸入兩個值等等,這時候就要使用多參數值輸入。

func ac(n1: Int = 1 , n2 : Int = 2) {
    print(n1 + n2)
}

ac()

當然,三個也沒有問題

func ac(n1: Int = 1 , n2 : Int = 2 , n3: Int = 100) {
    print(n1 + n2 + n3)
}

ac()

總結

今天講的主要還是比較基本的函數使用的方法,還有很多我沒有講到的,有興趣建議多學一點,不過我講的基本上也都可以用了,也就是說剩下的建議你可以要用再去查就好。

本文參考資料:本站大佬 通靈亡


上一篇
Day 12 - 基本語法7(函式)
下一篇
Day 14 - swift一些重要的細節
系列文
程式初學就來點swift吧!教你掌握整個蘋果生態圈!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言